package br.com.sgh.beans;

import br.com.sgh.dao.AcervoDAO;
import br.com.sgh.dao.TituloDAO;
import br.com.sgh.entidade.Acervo;
import br.com.sgh.entidade.Titulo;
import br.com.sgh.util.FacesContextUtil;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@ViewScoped
public class AcervoBean implements Serializable {

    private Acervo acervo;
    private List<Acervo> acervos;
    private Titulo titulo;
    private List<Titulo> titulos;

    private AcervoDAO acervoDao() {
        AcervoDAO<Acervo> dao = new AcervoDAO<Acervo>(Acervo.class, FacesContextUtil.getRequestSession());
        return dao;
    }

    private TituloDAO tituloDao() {
        TituloDAO<Titulo> dao = new TituloDAO<Titulo>(Titulo.class, FacesContextUtil.getRequestSession());
        return dao;
    }

    public String sarvarAcervo() {
        if (acervo.getCodAcervo() == null || acervo.getCodAcervo() < 1) {
            acervoDao().salvar(acervo);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Gravado com Sucesso!", null));
            cancelar();
        } else {
            acervoDao().atualizar(acervo);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Alterado com Sucesso!", null));
           // cancelar();
        }
        return "/admin/acervo.faces";
    }

    public String editar(Acervo acervo) {
        this.acervo = acervo;
        //acervo = (Acervo) acervoDao().getEntity(codigo);
        return null;
    }

    public void cancelar() {
        acervo = new Acervo();
    }

    public Acervo getAcervo() {
        if (acervo == null) {
            acervo = new Acervo();
        }
        return acervo;
    }

    public void setAcervo(Acervo acervo) {
        this.acervo = acervo;
    }

    public List<Acervo> getAcervos() {
        if (acervos == null) {
            acervos = acervoDao().acervos();
        }
        return acervos;
    }

    public void setAcervos(List<Acervo> acervos) {
        this.acervos = acervos;
    }

    public Titulo getTitulo() {
        if (titulo == null) {
            titulo = new Titulo();
        }
        return titulo;
    }

    public void setTitulo(Titulo titulo) {
        this.titulo = titulo;
    }

    public List<Titulo> getTitulos() {
        System.out.println(">>>>>>>> getTitulos");
        if (titulos == null) {
            titulos = tituloDao().titulos();
        }
        return titulos;
    }

    public void setTitulos(List<Titulo> titulos) {
        this.titulos = titulos;
    }

}
